1. Field of the Invention
This invention relates to data processing systems. More particularly, this invention relates to data processing systems providing temporal correlation between trace data sources.
2. Description of the Prior Art
The drive to reduce development time for new data processing systems means that there is a need to improve the debug and tracing tools that may be used during the development of data processing systems. Tracing the activity of a data processing system whereby a trace stream is generated including data representing the step-by-step activity in the system is a highly useful tool in system development. For example, tracing the activity of the data processing system may involve: tracking the contents of registers; tracking the values stored at particular locations in cache and/or external memory; or monitoring the status bus lines, paths or modules associated with a processor core.
For processor cores that are deeply embedded in much larger Application Specific Integrated Circuit (ASIC) designs it is generally not possible to determine how a processor core is operating simply by observing the pins of the ASIC because the ASIC typically includes significant amounts of on-chip memory. Furthermore, given the general increase in processing speeds as data processing systems evolve, the speed at which trace data must be captured in order to trace the real time operation of the system is increasing in a corresponding manner. For these reasons increased amounts of tracing functionality are being placed on-chip rather than off-chip. Examples of such on-chip tracing mechanisms are the Embedded Trace Macrocells provided by ARM Limited, Cambridge, England, in association with various of their ARM processors.
As data processing systems increase in complexity it is becoming common to use system-on-chip designs including multiple processing components, each component performing its own data processing operations and communicating with the other processing components. For example, a single integrated circuit may comprise several processor cores and/or digital signal processors. In such multi-component systems each processing component can be separately traced and will thus generate its own trace data stream. Each trace data stream that must be routed, processed and output or stored prior to analysis off-chip using appropriate diagnostic tools.
A problem with analysis of trace data streams produced by different processing components is that each processing component generates trace data in dependence upon an associated local clock signal. This means that the trace data streams output by different trace data sources are not temporally correlated. However since there is typically some interdependency between the processing operations performed by different processing components of the integrated circuit, diagnostic tools need to be able to temporally correlate trace events in different trace data streams to properly debug the system.